package com.rc.saas.mini.model.member;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.rc.saas.mini.common.base.BaseModel;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @Description 
 * @Author  
 * @Date: 2022-09-03
 */

@ApiModel(value=" member_account_record ", description=" 会员余额变动记录 ")
public class MemberAccountRecord extends BaseModel{ 

    @ApiModelProperty(value = "ID")
    private Long accountRecordId;
 
    @ApiModelProperty(value = "运营商")
    private String tenantCode;
 
    @ApiModelProperty(value = "会员ID")
    private Long memberId;
 
    @ApiModelProperty(value = "本地交易单号，消费，充值关联订单号")
    private String localTradeNo;
 
    @ApiModelProperty(value = "交易流水号 (本条记录自动生成的订单号)")
    private String inTradeNo;
 
    @ApiModelProperty(value = "企业ID")
    private Long enterpeiseId;
 
    @ApiModelProperty(value = "支付的账户类型 0个人钱包 1 企业钱包 2权益金 3收益金 4先付后退 默认0")
    private String accountType;
 
    @ApiModelProperty(value = "记录类型(0会员在线充值,1支出,2转账收入,3分配余额,4后台订单调整,5平台赠送,6积分兑换 7回收金额 8平台钱包充值 9分销返利 10资源占用费 11平台扣费 12 数据迁移 13共享额度变更 14后台退款 15.原路退款)")
    private String recordType;
 
    @ApiModelProperty(value = "变更余额")
    private BigDecimal amount;
 
    @ApiModelProperty(value = "变更后余额")
    private BigDecimal result;
 
    @ApiModelProperty(value = "源充值订单号 个人钱包对应充值单，权益金对应充值id，收益金对应充值id")
    private String sourceTradeNo;
 
    @ApiModelProperty(value = "0正常 1退款中 2退款成功 3退款失败")
    private String refundStatus;
 
    @ApiModelProperty(value = "权益金是否解冻 0否 1是 默认0")
    private String frozenStatus;
 
    @ApiModelProperty(value = "备注")
    private String remark;
 
    @ApiModelProperty(value = "null")
    private String createdBy;
 
    @ApiModelProperty(value = "null")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;
 
    @ApiModelProperty(value = "null")
    private String lastUpdatedBy;
 
    @ApiModelProperty(value = "null")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastUpdatedTime;
 
    @ApiModelProperty(value = "0,首充，1复充")
    private String channelType;
 
    @ApiModelProperty(value = "渠道商等级")
    private String channelLevel;
 
    @ApiModelProperty(value = "返点比例 (1-100)%")
    private Long rabeteRatio;
 
    @ApiModelProperty(value = "收益金状态 0待审核 1驳回 2通过 默认0")
    private String channelStatus;
 
    @ApiModelProperty(value = "提现有效期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date withdrawTime;
 
    public Long getAccountRecordId() {
        return accountRecordId;
    }

    public void setAccountRecordId(Long accountRecordId) {
        this.accountRecordId = accountRecordId;
    }

    public String getTenantCode() {
        return tenantCode;
    }

    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public String getLocalTradeNo() {
        return localTradeNo;
    }

    public void setLocalTradeNo(String localTradeNo) {
        this.localTradeNo = localTradeNo;
    }

    public String getInTradeNo() {
        return inTradeNo;
    }

    public void setInTradeNo(String inTradeNo) {
        this.inTradeNo = inTradeNo;
    }

    public Long getEnterpeiseId() {
        return enterpeiseId;
    }

    public void setEnterpeiseId(Long enterpeiseId) {
        this.enterpeiseId = enterpeiseId;
    }

    public String getAccountType() {
        return accountType;
    }

    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    public String getRecordType() {
        return recordType;
    }

    public void setRecordType(String recordType) {
        this.recordType = recordType;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getResult() {
        return result;
    }

    public void setResult(BigDecimal result) {
        this.result = result;
    }

    public String getSourceTradeNo() {
        return sourceTradeNo;
    }

    public void setSourceTradeNo(String sourceTradeNo) {
        this.sourceTradeNo = sourceTradeNo;
    }

    public String getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(String refundStatus) {
        this.refundStatus = refundStatus;
    }

    public String getFrozenStatus() {
        return frozenStatus;
    }

    public void setFrozenStatus(String frozenStatus) {
        this.frozenStatus = frozenStatus;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(String lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    public void setLastUpdatedTime(Date lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }

    public String getChannelType() {
        return channelType;
    }

    public void setChannelType(String channelType) {
        this.channelType = channelType;
    }

    public String getChannelLevel() {
        return channelLevel;
    }

    public void setChannelLevel(String channelLevel) {
        this.channelLevel = channelLevel;
    }

    public Long getRabeteRatio() {
        return rabeteRatio;
    }

    public void setRabeteRatio(Long rabeteRatio) {
        this.rabeteRatio = rabeteRatio;
    }

    public String getChannelStatus() {
        return channelStatus;
    }

    public void setChannelStatus(String channelStatus) {
        this.channelStatus = channelStatus;
    }

    public Date getWithdrawTime() {
        return withdrawTime;
    }

    public void setWithdrawTime(Date withdrawTime) {
        this.withdrawTime = withdrawTime;
    }

}
